class Solution {
public:
    void sortColors(vector<int>& nums) {
        int left = -1, i = 0, right = nums.size();
        while(i < right){
            if(nums[i] == 0) swap(nums[++left], nums[i++]);
            else if(nums[i] == 1) i++;
            else swap(nums[--right], nums[i]);
        }
    }
};
